package com.kfm.am;

// Outer 被称为外部类
public class Outer {

    private static int a = 2;
    private int b = 2;

    // Inner 静态成员内部类
    static class Inner {

        static int b = 2;
        String name;

        Inner() {
        }

        void test() {
            // 内部类内部可以访问private修饰的成员 静态内部类不能外部的实例成员
            System.out.println(a);
        }
    }

    public class Inner2 {
        String name;
        static int a;
        int b = 3;

        void test() {
            System.out.println(Outer.a);
            System.out.println(b);
            System.out.println(Outer.this.b);
        }

        static void test03() {
        }

        void test02() {
            test();
            Outer.this.test();
            test03();
            Outer.test03();
        }
    }

    static void test03() {
    }

    void test() {
        // 外部类访问内部类 的成员变量
        // 静态的成员 直接可以通过内部类类名.属性
        // 非静态的成员 需要先创建对象
        System.out.println(Inner.b);
        System.out.println(new Inner().name);
        System.out.println(new Inner2().name);
    }
}
